#ifndef POUVOIR_PRIVATE_H_
#define POUVOIR_PRIVATE_H_

#include "Pouvoir.h"
#include "Personnage.h"
#include "Jeu.h"

/**
 * \struct _Pouvoir
 * \brief Définie la structure interne d'un pouvoir
 */
struct _Pouvoir{
	char* nom;
	int quantite;
	Personnage* perso;
	
/***************************
 * Héritage
 */
	TypePouvoir type; 		/*< Type de la classe qui hérite de celle-ci */
	void* ext; 				/*< données étendues propre à la classe qui hérite celle-ci */
	/* virtual methods  */
	int (* appliquer)(Pouvoir* pouvoir, Jeu* jeu);
	int (* canUseItNow)(Pouvoir* pouvoir, Jeu* jeu);
	void (* free)(Pouvoir* pouvoir);
};

Pouvoir* newPouvoir(char* nom,int quantite,Personnage* perso);

void pouvoirSetType(Pouvoir* pouvoir,TypePouvoir type);

#endif /*POUVOIR_PRIVATE_H_*/
